# config.py - 车道线检测参数配置文件

# ========== 摄像头配置 ==========
IS_CAMERA_MODE = 0          # True = 使用摄像头，False = 使用图片/视频
CAMERA_ID = 0                  # 摄像头设备编号（0 通常是默认摄像头）

# ========= 视频配置 =========
# 视频，读取待处理的视频
VIDEO_PATH = "test_videos/demo2.mp4" # 演示效果： demo1 \demo2 \demo3

OUTPUT_WINDOW_NAME = "Lane Detection - Press Q to Quit"
# OpenCV 实时显示窗口的标题

# ========== 模式开关 ==========
IS_IMAGE_MODE = 0  # True 表示识别图片，False 表示识别视频

# ========== 图片配置（仅在 IS_IMAGE_MODE = True 时有效）==========
IMAGE_PATH = './test_images/2.jpg'

# ========= 图像处理参数 =========
GAUSSIAN_KERNEL_SIZE = 5

# 高斯模糊核大小。用于降噪，值越大模糊越强，但会丢失细节。
# 必须为奇数，如 3, 5, 7 等。

CANNY_LOW_THRESHOLD = 50
# Canny 边缘检测的低阈值。低于此值的像素被抑制。

CANNY_HIGH_THRESHOLD = 150
# Canny 边缘检测的高阈值。高于此值的像素被保留为强边缘。
# 建议 HIGH : LOW ≈ 2:1 或 3:1

# ========= ROI 区域配置 =========
ROI_RATIO_TOP = 0.6
# ROI（感兴趣区域）梯形顶部 y 坐标占图像高度的比例。
# 例如 0.6 表示顶部在图像 60% 高度处。

ROI_RATIO_BOTTOM = 0.9
# ROI 梯形底部 y 坐标占图像高度的比例。
# 例如 0.9 表示底部在图像 90% 高度处。

ROI_WIDTH_RATIO = 0.55 # 0.45
# ROI 梯形上下底宽度占图像宽度的比例。
# 控制梯形区域的宽度，越小越集中于车道中央。

# ========= 霍夫变换参数 =========
HOUGH_RHO = 0.5 # 1
# 霍夫变换的距离分辨率（像素）。值越小，检测越精细。

HOUGH_THETA = 0.5 # 1
# 霍夫变换的角度分辨率（度）。值越小，角度越精细。
# 实际使用时会转换为弧度: np.pi / 180 * HOUGH_THETA

HOUGH_THRESHOLD = 25 #15
# 霍夫变换的累加器阈值。值越大，检测条件越严格，线越少。

HOUGH_MIN_LINE_LEN = 20
# 要检测的线段最小长度（像素）。过滤掉太短的噪声线。

HOUGH_MAX_LINE_GAP = 80 #100
# 允许将两条短线段连接成一条直线的最大间隔（像素）。

# ========= 绘制参数 =========
DRAW_THICKNESS = 6
# 绘制车道线的线宽（像素）。

LEFT_LANE_COLOR = [255, 0, 0]
# 左车道线颜色（BGR格式）。蓝色 [255, 0, 0]

RIGHT_LANE_COLOR = [0, 255, 0]
# 右车道线颜色（BGR格式）。绿色 [0, 255, 0]

# ========= 显示参数 =========
DISPLAY_FRAME_INFO = True
# 是否在视频帧上显示当前帧数信息。

WAIT_KEY_DELAY = 50
# OpenCV 等待按键的延迟时间（毫秒）。
# 控制播放速度，值越小播放越快。设为 0 则等待按键。



